Various graphical user interfaces for interaction between an application and an input device have been designed and implemented according to Fitt's Law. Fitt's Law states that the further away the target is from the current position of the input device, or the smaller the target is, the more difficult the target is to select. The more difficult the target is to select, the higher the likelihood of missing the target.
In a Graphical User Interface (GUI) there are a number of different controls, sometimes called widgets, available for initiating actions and changing settings. These include buttons for performing actions, sliders, checkboxes, and radio buttons for changing settings, and pop-up or pull-down menus for actions or settings. For example, a menu might be used to indicate that a file should be saved, pressing a button could cancel a pending request, or checking a checkbox could change the boldness of text.
Because the central area of a display screen is typically used to display working documents, the controls used to change settings are typically positioned at the edge of the screen. For example, in a drawing application, menus for file and view operations are usually located at the top, and controls for color and tool selection are typically at the left or right edge of the screen. Although this placement avoids obscuring the image or document being manipulated, this makes these controls relatively inconvenient, resulting in longer times to access them. This is particularly true given that displays are becoming increasingly larger, thereby positioning the menus even further from the center of the display.
Attempts have been made to improve setting and menu selection methods. Radial selection techniques have been used in graphical user interfaces. The earliest form of a radial selection technique is a pie menu. Pie menus can be textual, iconic, or a combination of both. In some implementations, only the text is shown with no background or borders. Clicking in a pie segment makes a selection of an item. The number of choices can be extended through a hierarchy, where a second level menu is displayed at the location where the first menu item was chosen.
However, the format of the conventional pie menu has significant limitations. Specifically, the format of the conventional pie menu does not lend itself to setting and updating variables. Because setting or updating variables typically may involve steps that cannot be performed using conventional pie menus, other methods may be required to set and update variable values, for example, by visiting the menubar and selecting the appropriate option from a drop down menu to display a dialog for setting and/or updating the variables. Menubars, however, are typically positioned at the top or bottom of the screen, thus requiring the user to move the input device and cursor all the way across the screen to make a selection or adjustment.
In applications that require variables to be changed or updated constantly, accessing a menubar to either select a menu or change the variables is time consuming and inefficient. For example, when working in a graphics design application creating visual components of different visual characteristics, a designer needs to be able to readily access and change variables, such as color, brightness, opacity, etc.
Another form of conventional radial menu is a crossing menu. When a crossing method is used, the user is only required to cross into a sector or wedge of the menu, instead of crossing and selecting. A specific type of crossing menu is a flow menu. In the flow menu, the user makes a selection in the middle of the menu, then moves the cursor into a desired menu item, then back into the middle of the flow menu. The flow menu can be used to allow the user to make a series of selections in various levels of a hierarchy. For example, once a first selection is made in a first level of the menu, a second level of the menu can then be displayed for the user to make a second selection. The second level can be displayed once the user returns the cursor to the middle of the flow menu. Because the different levels of the hierarchy are not displayed until the cursor has returned to the middle of the flow menu, the flow menu remains displayed in the same position on the screen, thereby preventing subsequent levels from gradually moving the flow menu toward the edge of the screen. However, flow menus are frequently difficult for new users to learn how to use. Additionally, flow menus do not allow for continuous values to be selected, because the selections must be made by selecting particular menu items in the flow menu. “Marking menus” are similar to flow menus, and thereby suffer from the same drawbacks as flow menus.
Another control type, called a “slider”, is used to set continuous variables. A slider control has an elongated track with a sliding element that can be moved along the track to set the value of a variable. The sliding element can be moved along the track based on movement of the cursor until the user makes a selection input to inform the slider control menu that the current value is to be selected based on the position of the sliding element. The sliding element can then be readjusted until it is dismissed. However, the slider control menu uses screen space inefficiently. For example, when there is more than one sliding element, the sliding elements are spaced across the screen so that any content displayed on the screen is not viewable. Additionally, a user must typically access another menu in order to invoke the slider control menu. This is time consuming and requires the user to know exactly how to find the slider control menu in the GUT. An example of a slider control menu is the volume control slider in the Apple® Macintosh® operating system.
Slider controls may also be included in tool palettes. However, tool palettes are often hidden and must be displayed by menu commands or keystroke combinations, and are usually located at the edge of the screen to avoid obscuring the document being worked on. Moving to the screen edge to access the sliders is time consuming. Examples of sliders in tool palettes are the sliders in Adobe Photoshop palettes.
A disadvantage of the above methods is that these selection techniques focus on menus that are relatively inflexible to allow controlling settings and choosing actions. One such control setting is the ability to represent state within a radial segment. Another is to allow continuous selections, as opposed to a discrete selection.
Accordingly, there is a need for an improved pie menu having more flexibility and applicability to various applications with numerous continuous value variables and/or state variables.